package com.class05.config;


import com.class05.interceptor.MyInterceptor;
import com.class05.interceptor.MyInterceptor1;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*;


/**
 * @ClassDescription:
 * @JdkVersion: 17
 * @Author: yxy
 * @Created: 2023/12/1 9:28
 */
@Configuration
@EnableWebMvc//添加了handlerMapping、handlerAdapter、json转化器
//视图解析器，指定前后缀
@ComponentScan({"com.class05.controller","com.class05.error"})
public class MvcConfig implements WebMvcConfigurer {
    @Override
    public void configureViewResolvers(ViewResolverRegistry
                                                   registry) {
//        registry可以快速添加前后缀
        registry.jsp("/WEB-INF/views/", ".jsp");
//        handler->index
    }
//开启静态资源查找
//    dispatcherServlet  ->  handlerMapping 找有没有对应的handler  -》
//    [没有 -》  找有没有静态资源]
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer
                                                            configurer) {
        configurer.enable();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
//        配置方案1：拦截全部请求
//        registry.addInterceptor(new MyInterceptor());

        //        配置方案2：指定地址拦截
//        * 任意一层字符串    ** 任意多层字符串
//        registry.addInterceptor(new MyInterceptor()).addPathPatterns("/hello/**");

        //        配置方案3：排除拦截   排除的地址应该在拦截地址内部
//        * 任意一层字符串    ** 任意多层字符串
//        registry.addInterceptor(new MyInterceptor()).
//                addPathPatterns("/hello/*").excludePathPatterns("/hello/test1");

        registry.addInterceptor(new MyInterceptor()).excludePathPatterns("/hello/test1");
//        registry.addInterceptor(new MyInterceptor1());
    }
}
